#pragma once
#ifndef CONFIG_H
#define CONFIG_H
#include"common_include.h"

namespace test_visual_odom{

//需要将文件的变量读取成为自己的变量，不然，后面代码不好查找问题
class Config
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
    typedef shared_ptr<Config> Ptr;  //定义智能指针，后面传参，使用vector的时候，效率更高

    string left_image_topic_,right_image_topic_,camera_model_type_;
    int image_width_,image_height_,num_features_,num_features_init_,num_features_tracking_;
    double camera_left_k1_,camera_left_k2_,camera_left_p1_,camera_left_p2_,
    camera_left_fx_,camera_left_fy_,camera_left_cx_,camera_left_cy_;
    double camera_right_k1_,camera_right_k2_,camera_right_p1_,camera_right_p2_,
    camera_right_fx_,camera_right_fy_,camera_right_cx_,camera_right_cy_;

    cv::Mat R_camera_left2camera_right_,t_camera_left2camera_right_;

    Config(){}
    Config(ros::NodeHandle &n, const string param_name);

private:
    template<typename T>
    T rosReadParam(ros::NodeHandle &n, string name);
};

}

#endif
